package com.ys.peony.enums;

import java.util.HashMap;
import java.util.Map;

/**
 * describe:人脸识别返回错误信息
 * author:czhang
 * date:2017/6/19 20:20
 */
public class FaceOCRErrorEnum {
    private static Map<String, Object> array;

    static {
        array = new HashMap<String, Object>();
        array.put("IMAGE_ERROR_UNSUPPORTED_FORMAT", "图像无法正确解析，有可能不是一个图像文件、或有数据破损");
        array.put("INVALID_IMAGE_SIZE", "上传的图像太大(图像存储尺寸超过2MB、或者长或宽超过4096像素)");
        array.put("MULTIPLE_FACES", "对应的图像中发现有多张脸");
        array.put("NO_FACE_FOUND", "图像中没有找到人脸");
        array.put("LOW_QUALITY", "图像中的人脸图像质量低于阈值");
        array.put("INVALID_FACE_TOKEN", "使用face token作为待验证图时，所传的face_token不存在");
        array.put("NO_SUCH_ID_NUMBER", "有源比对时，数据源中没有此身份证号码的记录");
        array.put("ID_NUMBER_NAME_NOT_MATCH", "有源比对时，数据源中存在此身份证号码，但与提供的姓名不匹配");
        array.put("INVALID_NAME_FORMAT", "有源比对时，idcard_name参数字符数过多（多于32字符）、或者使用错误的编码（姓名要求以UTF-8编码）");
        array.put("INVALID_IDCARD_NUMBER", "有源比对时，idcard_number参数不是正确的身份证号码格式。身份证号码必定为18位数字，且最后一位可以是X（大小写均可）");
        array.put("DATA_VALIDATION_ERROR", "配合MegLive SDK使用时，delta 参数的校验数据与上传的图像无法一一对应，或者图像上传不完整");
        array.put("DATA_SOURCE_ERROR", "有源比对时，verify方法调用数据源发生错误，一般来说是数据源出错");
        array.put("DELTA_USED", "配合MegLive SDK使用时，系统检验出delta已被使用过");
        array.put("MEGLIVE_BIZ_NO_USED", "配合MegLiveFlash SDK使用时，需要通过一个 meglive_biz_no 进行算法初始化");
        array.put("AUTHORIZATION_ERROR", "api_key被停用、调用次数超限、没有调用此API的权限，或者没有以当前方式调用此API的权限");
        array.put("CONCURRENCY_LIMIT_EXCEEDED", "并发数超过限制");
        array.put("MISSING_ARGUMENTS", "缺少某个必选参数");
        array.put("BAD_ARGUMENTS", "某个参数解析出错");
        array.put("Request Entity Too Large", "客户发送的请求大小超过了2MB限制");
        array.put("API_NOT_FOUND", "所调用的API不存在");
        array.put("INTERNAL_ERROR", "服务器内部错误，当此类错误发生时请再次请求，如果持续出现此类错误，请及时联系FaceID客服或商务");

    }

    /**
     * 获取状态描述
     *
     * @param errorCode
     * @return
     */
    public static String getErrorInfo(String errorCode) {
        return null != array.get(errorCode) ? array.get(errorCode).toString() : "";
    }
}
